Spatial bookmarking

ABSTRACT

Methods, apparatuses and computer-readable media for creating a spatial bookmark are provided. A method includes performing an action at a near location which causes a spatial bearing parameter corresponding to a real-time video image captured by a video-camera platform at a remote location to be stored in a computer-readable memory, wherein the video-camera platform has a controllable LOS. Performing an action at the near location that designates to a computer an image displayed on a screen, wherein the image is representative of the real-time video image, thereby causing the computer to retrieve the spatial bearing parameter from the computer-readable memory, and performing an action causing the computer to aim the video-camera platform along a LOS, wherein the video-camera platform captures a real-time video image that is received at a screen for display at the near location.

TECHNICAL FIELD

This specification relates generally to video-conferencing controlapplications, and more particularly to methods for directing avideo-camera platform to aim along selected lines-of-sight.

BACKGROUND

Video-conferencing allows virtual participants, who are at a locationthat is remote from a meeting room, to view real-time video images of ameeting. However, these virtual participants usually do not have controlover the real-time video images they receive. For example, virtualparticipants generally cannot direct the video-camera at the remotelocation to aim along a particular line-of-sight to place particularobjects or people within the camera's field-of-view.

While providing the video-camera with a wider field-of-view may providea way to capture more of the meeting room within a particular frame,there is always a wider view than will be supported by a video-camera.As such, it is likely that at least some elements of the meeting roomwill not be constantly visible in a real-time video image. Further,wide-angle lenses may introduce image distortion that, unless correctedby software that requires additional computational resources, can makecertain elements within real-time video images unclear.

In an alternative solution, video-cameras may be automatically aimedupon detecting motion, or the sound of a voice or object within ameeting room. These solutions typically require a controller to aim avideo-camera along selected lines-of-sight. However, this type ofcontroller is usually situated at the same location as the video-cameraand the motion/sound source (e.g., within or adjacent to the meetingroom) and is generally not accessible to virtual participants.

SUMMARY

Methods, apparatuses and computer-readable media for creating andutilizing a spatial bookmark are presented. In an embodiment, a methodfor controlling, from a near location, the view of a video-cameraplatform located at a remote location based on a spatial bookmark isprovided. A user at the near location who is in communication with avideo-camera platform at a remote location can aim the video-cameraplatform along a line-of-sight (LOS) associated with a spatial bookmark(e.g., toward saved locations of interest) by selecting an imagepresented on a screen that is representative of objects or persons atthe remote location.

In accordance with an embodiment, an action is performed at a nearlocation which causes a spatial bearing parameter corresponding to areal-time video image captured by a video-camera platform at a remotelocation to be stored in a computer-readable memory, wherein thevideo-camera platform has a controllable LOS. An action is performed atthe near location that designates to a computer an image displayed on ascreen, wherein the image is representative of the real-time videoimage, thereby causing the computer to retrieve the spatial bearingparameter from the computer-readable memory, and an action is performedcausing the computer to aim the video-camera platform along a LOS,wherein the video-camera platform captures a real-time video image thatis received at a screen for display at the near location. The spatialbearing parameter may comprise at least one of a pan coordinate and atilt coordinate.

In accordance with an embodiment, the video-camera platform may be incommunication with a robotic device at the remote location, and theaction causing the computer to aim the video-camera platform along theLOS causes the robotic device to perform an action based on a real-timevideo image captured by the video-camera platform. The video-cameraplatform may also be in communication with a computer application,wherein the action causing the computer to aim the video-camera platformalong the selected LOS causes the computer application to perform anaction based on a real-time video image captured by the video-cameraplatform.

In accordance with an embodiment, the spatial bearing parameter isautomatically determined based on one of a detected sensor signal at theremote location or user-selected scanning criteria.

In accordance with an embodiment, information indicative of spatialbearing parameter is caused to be stored in the computer-readablememory, and the information indicative of the spatial bearing parameteris caused to be transmitted, wherein the information indicative of thespatial bearing parameter causes the video-camera platform to aim alongthe LOS.

In accordance with an embodiment, an index of information indicative ofa spatial bearing parameter is stored upon user-selection, and the indexis transmitted along with an instruction to record the correspondingspatial bearing parameter. The index is transmitted upon the designationof the selected image that corresponds to the spatial bearing parameterof the LOS to the remote location.

In accordance with an embodiment, a spatial bearing parameter is storedat the near location upon user-selection, and is transmitted to theremote location upon the designation of the selected image. Controlsignals also may be transmitted from the near location for aiming thevideo-camera platform along the LOS.

In accordance with an embodiment, real-time video images captured by avideo-camera platform at a remote location are displayed at a nearlocation, wherein the video-camera platform has a controllable LOS.While displaying the real-time video images, one or more user-generatedinputs are received at respective view-selection times. A spatialbearing parameter of the video-camera platform obtained at eachrespective view-selection time is recorded in response to the respectiveuser-generated inputs. Images representative of the real-time videoimages are displayed at each view-selection time, and in response to atleast one user-generated input that designates a selected one of theimages, the video-camera platform is automatically aimed along a LOScorresponding to the spatial bearing parameter.

These and other advantages of the present disclosure will be apparent tothose of ordinary skill in the art by reference to the followingdetailed description and the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of a networked computing system for creating andutilizing a spatial bookmark in accordance with an embodiment;

FIG. 2 is a diagram of a user-interface screen in accordance with anembodiment;

FIG. 3A illustrates a video-camera platform at a remote location meetingsession in accordance with an embodiment;

FIG. 3B illustrates a camera perspective field-of-view at a remotelocation meeting session in accordance with an embodiment;

FIG. 3C illustrates another video-camera platform at a remote locationmeeting session in accordance with an embodiment;

FIG. 3D illustrates another camera perspective field-of-view at a remotelocation meeting session in accordance with an embodiment;

FIG. 3E illustrates another video-camera platform at a remote locationmeeting session in accordance with an embodiment;

FIG. 4 is a flowchart of a process for creating and utilizing a spatialbookmark associated with a real-time video image of a remotevideo-camera platform in accordance with an embodiment;

FIG. 5 is a diagram illustrating automatically created spatial bookmarksin accordance with an embodiment; and

FIG. 6 is a high-level block diagram of an exemplary computer forcreating and utilizing a spatial bookmark within a networked computingplatform.

DETAILED DESCRIPTION

A video-camera platform can be utilized to establish a virtual meeting(i.e., a video-conference) between two locations that are remote (e.g.,not within a line-of-sight) from each other. As such, virtual meetingparticipants, who are at a first (near) location, can view real-timevideo images of a meeting taking place at a second (remote) location.The embodiments herein allow a user (e.g., a virtual meetingparticipant) at a near location to view real-time video images producedby a video-camera platform at a remote location and to create spatial(i.e., physical space) bookmarks based on the real-time video images.

A spatial bookmark (also referred to herein as a bookmark) can be usedto mark and recall an area of physical space, such as an area ofphysical space presented in a field-of-view of a real-time video image.A bookmark can be defined based on a coordinate system, such as byCartesian coordinates or by a pan coordinate (corresponding to arotation about a vertical axis) and a tilt coordinate (corresponding toa rotation about a horizontal axis). For example, a pan and tilt (p, t)coordinate pair can represent pan and tilt angles referenced to a fixedhome position of a video-camera platform. As such, a bookmark maycomprise a spatial bearing parameter, such as a reference to a pan andtilt coordinate pair, as well as other video-camera platform controldata (e.g., focus, zoom, light settings, etc.). A bookmark can betransmitted to direct a video-camera platform to aim along aline-of-sight corresponding to a spatial bearing parameter (e.g., panand tilt coordinate pair) of the bookmark. Further, the video-cameraplatform may be additionally directed based on the control data of thebookmark. As such, a user at a near location can perform an action thatcauses a video-camera platform at a remote location to be aimed along aparticular line-of-sight (LOS). Therefore, creating a bookmark mayovercome the need to locally or manually aim a video-camera platformbased on a particular area of interest.

Areas of physical space (spatial locations), as viewed from theperspective of a video-camera platform, that include participants andobjects of interest within a meeting room may be saved as bookmarks. Forexample, several meeting participants may be seated around tables andother objects of interest, such as projector screens and whiteboards.Real-time video images produced by a video-camera platform within themeeting room (at a remote location) can be presented on a screen at anear location. In one embodiment, these real-time video images can bepresented on the screen as one or more still images or as a shortmotion-video clip that may show an approximation of what would be seenin a real-time video image. In another embodiment, one or more iconsrepresenting a participant or object of interest located within thefield-of-view of a real-time video image can be generated and presentedon the screen. Upon presentation, each of the real-time video images,still images and icons can be selected by a user to create a bookmarkthat can be recorded and utilized to automatically aim the video-cameraplatform along a LOS corresponding to a spatial bearing parameter (e.g.,the pan and tilt coordinate pair) of the bookmark.

FIG. 1 is a diagram of a networked computing system for creating andutilizing a spatial bookmark in accordance with an embodiment. System100 defines a near location 102 and a remote location 104. Near location102 defines a location that is at a physical distance from remotelocation 104 (e.g., a location that is not within the line-of-sight ofremote location 104 such as a different meeting room, city or country).For example, remote location 104 may be a location of a live conferencethat is transmitted via network 106 to near location 102.

Network 106 can be a public network (e.g., the Internet), a privatenetwork (e.g., and enterprise intranet) or a combination of public andprivate networks. As such, one or more interconnected components ofnetwork 106 can include both public network components (e.g., publicdata centers) and private network components (e.g., enterprise datacenters). For example, network 106 may comprise one or moreinterconnected data nodes, backend components and computer terminals,such as computer terminal 108.

System 100 further includes a video-camera platform 110 (e.g., apan/tilt platform) that can support controllable pan/tilt motion and/ormobility. For example, a video-camera platform may include aconventional pan/tilt video-camera, a network-connected video-camera, avideo-camera mounted on a mobile robotic platform, or the like. As such,a video-camera platform can be understood to include any combination ofa video-camera and circuitry for various applications. Further, while avideo-camera platform implementation is exemplary, it also should benoted that other devices, robots and computer applications associatedwith video or fixed-frame cameras are equally suitable for implementingthe various embodiments.

Computer terminal 108, in combination with computer-readable memory 112,may be configured to execute a controller procedure to allow a user at anear location to create a spatial bookmark based on images received froma video-camera platform 110 at a remote location. For example, displayscreen 114 at near location 102 may be configured to present forselection a real-time video image 116 (or, alternatively, a still imageor icon representing a real-time video image) received from video-cameraplatform 110. Upon selection of real-time video image 116 by a user, abookmark 118 constituting a spatial bearing parameter 119 (e.g., areference to a pan and tilt coordinate pair of image 116) and,optionally, additional data 120 (e.g., control data associated withimage 116 such as camera focus settings, aperture settings, etc.) and arepresentation (I′) 121 of image 116 (e.g., a thumbnail image), may bestored locally in memory 112 or transmitted via network 106 for storage,such as in a cloud computing storage node 122. Upon storage of bookmark118, computer terminal 108, in combination with computer-readable memory112 (or cloud computing storage node 122), may be configured to executea controller procedure to retrieve the bookmark 118 and effectivelyallow a user at near location 102 to automatically aim video-cameraplatform 110 along a LOS corresponding to the spatial bearing parameter119 of bookmark 118.

FIG. 2 is a diagram of a user-interface screen in accordance with anembodiment. Computer terminal 108, in conjunction with computer-readablememory 112, may be configured to execute a graphical user interfaceapplication (GUI) 200 at display 114 for controlling video-cameraplatform 110 at remote location 104. In one embodiment, GUI 200 allows auser at near location 102 to create a spatial bookmark. For example, GUI200 may display a real-time video image 202 of remote location 104(e.g., a meeting room having chairs 204, a display monitor 206, etc.)and, optionally, a display of near location 102 (e.g.,picture-in-picture display 208). GUI 200 may receive one or moreuser-generated inputs at respective view-selection times (i.e., whenreal-time video images of particular fields-of-view are displayed). Inresponse to the respective user-generated inputs obtained at eachrespective view-selection time, one or more spatial bookmarks includingone or more spatial bearing parameters 119 and, optionally, additionaldata 120 can be created and then recorded (e.g., by computer terminal108, in conjunction with computer-readable memory 112). Images 210representative of the bookmarked real-time video images or icons 212representing a participant or object of interest located within thefield-of-view of a bookmarked real-time video image, may then bedisplayed and, in response to at least one user-generated input thatdesignates a selected one of the images 210 or icons 212, video-cameraplatform 110 can be automatically aimed along a LOS corresponding to aspatial bearing parameter 119 of the bookmarked real-time video imagerepresented by the selected image 210 or icon 212.

In one embodiment, GUI 200 may include a side window display area 214for organizing a plurality of images 210 or icons 212. As such, a usermay select an image 210 or icon 212 representative of a bookmarkedreal-time video image by clicking or touching (e.g., via a computermouse or touch-sensitive interface) an image 210 or icon 212 within theside window display area 214 or by selecting an image 210 or icon 212using a gesture recognized by the camera. Likewise, user may select anicon 212 overlaying the real-time video image 202 by clicking ortouching an icon 212 within the image display area. In one embodiment,the user also may select to overwrite the images with new images.

In one embodiment, upon transmission of a user-selection to video-cameraplatform 110, video-camera platform 110 can be automatically aimed alonga LOS corresponding to a spatial bearing parameter 119 of the bookmarkedreal-time video image represented by the selected image 210 or icon 212.For example, a computer, at near location 102, remote location 104 orelsewhere (e.g., within network 106) may transmit the spatial bearingparameter 119 and, optionally, control signals 120 of the bookmarkedreal-time video image to video-camera platform 110. Upon receiving thespatial bearing parameter 119 and control signals 120, video-cameraplatform 110 is directed to aim along a LOS corresponding to a spatialbearing parameter 119. The real-time images from video-camera platform110 then may be received for display within GUI 200.

Alternatively, a sensor configured to be sensitive based on motion,sound, pressure, visual or other parameters may be utilized forautomatically creating a spatial bookmark. For example, one or morechairs in a meeting room may be equipped with pressure (i.e., force)sensors configured to detect occupancy. A sensor-equipped chair maydetect when it is occupied and automatically direct video-cameraplatform 110 to aim along a line-of-sight in the direction of theoccupied chair. The real-time video images then may be relayed to GUI200 for display, and a user-generated input may be received thatdesignates a selected one of the real-time video images to create aspatial bookmark. In one embodiment, GUI 200 may present a virtual map216 of remote location 104 in addition to the real-time video images.Virtual map 216 can be diagram including the physical space shown inreal-time video images, wherein a highlighted chair 218 may indicatethat a chair within the real-time video image is occupied. A spatialbookmark then may be automatically or manually created based on thevirtual map information. As such, when a person stands up and moves tosit on a different chair, a new position is sensed and the video-cameraplatform at the remote location may be configured to aim along a LOSbased on the new position. In a meeting room setting, all occupiedchairs may be sensed and automatically presented to be configured asspatial bookmarks. These spatial bookmarks then may be automaticallyupdated during the course of a video-conference session, such as whensome people get up and leave the room or new people enter the room andtake a seat. For example, video-camera platform 110 may be directed toface only the occupied chairs based on the automatically updated spatialbookmarks.

FIGS. 3A-3E are diagrams illustrating video-camera platform and cameraperspective fields-of-view at a remote location meeting session inaccordance with an embodiment. For example, FIG. 3A illustrates ameeting room 300 at a remote location including a video-camera platform302 through which a user at a near location connected to a network mayview a meeting session. Within room 300, one or more participants, e.g.,participant A 304 and participant B 306, may be seated within a firstline-of-sight 308 of video-camera platform 302. Video-camera platform302 may be controllably adjusted via GUI 200 to aim along aline-of-sight to produce real-time video images incorporatingfield-of-view 308. For example, field-of-view 308 may correspond to aspatial bearing parameter 119 of a bookmarked real-time video image thatincorporates participant A 304. The video-camera platform perspective offield-of-view 308 is shown in FIG. 3B.

Likewise, as illustrated in FIG. 3C, video-camera platform 302 may becontrollably adjusted to aim along a second line-of-sight to producereal-time video images incorporating field-of-view 310. For example,field-of-view 310 may correspond to a spatial bearing parameter 119 of abookmarked real-time video image that incorporates participant B 306.The video-camera platform perspective of field-of-view 310 is shown inFIG. 3D. While the participants in FIGS. 3A and 3C are within thefields-of-view of video-camera platform 302, FIG. 3E illustrates aninstance where the participants are not visible within a field-of-view.For example, when video-camera platform 302 is aimed along aline-of-sight to produce real-time video images incorporatingfield-of-view 312, the field-of-view is not wide enough to viewparticipant A 302 and participant B 306 in the frame. As such, a usermay utilize spatial bookmarks created based on the camera perspectivesshown in FIGS. 3B and 3D to automatically pan video-camera platform 302from side-to-side to see each of the participants, such as during thecourse of a conversation.

FIG. 4 is a flowchart of a process for creating and utilizing a spatialbookmark associated with a real-time video image of a remotevideo-camera platform in accordance with an embodiment. At 400, anaction is performed at a near location which causes a spatial bearingparameter corresponding to a real-time video image captured by avideo-camera platform at a remote location to be stored in acomputer-readable memory, wherein the video-camera has a controllableLOS. For example, a spatial bookmark may be created and stored thatincludes the spatial bearing parameter and optionally, one or morecontrol signals. The spatial bearing parameter may be a pan and tiltcoordinate pair.

In one embodiment, the spatial bearing parameter may be automaticallydetermined based on user-selected scanning criteria. For example,computer terminal 108 may be configured to transmit control signals tovideo-camera platform 110 to scan a specified angular range of motionand automatically create a specified number of spatial bookmarks withinthe scanned angular range of motion. As shown in FIG. 5, a user via GUI200 may specify an angular range of motion 500 (e.g., a pan or tiltangle of 180 degrees) for scanning and a number of divisions 502-508within the angular range of motion 500 to automatically create spatialbookmarks. For example, the specified angular range of motion and numberof divisions may be transmitted to video-camera platform 110 at theremote location for auto-creation.

At 402, an action is performed at the near location that designates to acomputer an image displayed on a screen, wherein the image correspondsto the spatial bearing parameter, thereby causing the computer toretrieve the spatial bearing parameter from the computer-readablememory. For example, a user at GUI 200 may click or touch a bookmarkedreal-time video image (created upon the action at 400) to designate theimage to computer terminal 108.

At 404, an action is performed causing the computer to aim thevideo-camera platform along a LOS corresponding to the spatial bearingparameter, wherein the video-camera platform captures real-time videoimages that may be received at a screen for display at the near locationat 406. Further, a user may select a bookmarked image or icon to aim aremote location video-camera along a LOS, or may manually adjust thespatial bearing parameter of one or more bookmarked images. For example,a user may adjust the spatial bearing parameter of a bookmarkedreal-time video image based on a real-time video image received from thevideo-camera platform for display at a near location.

Alternatively, the video-camera may be in communication with a mobilerobotic device at the remote location, and performing the action causingthe computer to aim the video-camera along a LOS at 404 may cause themobile robotic device to perform an action based on the capturedfield-of-view. In another example, the video-camera may be incommunication with a computer application, wherein performing the actionat 404 causes the computer to aim the video-camera along a LOS causesthe computer application to perform an action based on the capturedfield-of-view.

A spatial bearing parameter may be stored in any combination of near andremote locations relative to the video-camera platform. For example,information indicative of the spatial bearing parameter may be caused tobe stored in a computer-readable memory at a near location relative to avideo-camera located at a remote location. Upon user-selection, theinformation indicative of the spatial bearing parameter is caused to betransmitted, wherein the information indicative of the spatial bearingparameter causes the video-camera to aim along a LOS.

In another example, an index of information indicative of a spatialbearing parameter is stored upon user-selection at a near location, andthe index is transmitted along with an instruction to record acorresponding spatial bearing parameter to a remote location (e.g., thelocation of the video-camera platform). For example, the index may betransmitted upon the designation of a bookmarked image that correspondsto the spatial bearing parameter.

In yet another example, a spatial bearing parameter may be stored at thenear location upon user-selection and, upon the designation of abookmarked image, the spatial bearing parameter may be transmitted to aremote location. In one embodiment, control signals for aiming thevideo-camera along a LOS may be transmitted from the near location alongwith the spatial bearing parameter (e.g., the spatial bookmark may betransmitted from the near location).

In various embodiments, the method steps described herein, including themethod steps described in FIG. 4, may be performed in an order differentfrom the particular order described or shown. In other embodiments,other steps may be provided, or steps may be eliminated, from thedescribed methods.

In addition to the preceding examples, the embodiments herein also maybe utilized with respect to other applications. For example, a spatialbookmark may be utilized in robotic applications such as directing amobile tele-presence robot to return to a particular physical space. Arobot may navigate to a location, such as a location within an office,and create a spatial bookmark for the location. The spatial bookmark maythen be stored and presented to a user such that, upon selection by auser, the robot can be directed to return to the bookmarked locationfrom a different location.

Systems, apparatus, and methods described herein may be implementedusing digital circuitry, or using one or more computers using well-knowncomputer processors, memory units, storage devices, computer software,and other components. Typically, a computer includes a processor forexecuting instructions and one or more memories for storing instructionsand data. A computer may also include, or be coupled to, one or moremass storage devices, such as one or more magnetic disks, internal harddisks and removable disks, magneto-optical disks, optical disks, etc.

Systems, apparatus, and methods described herein may be implementedusing computers operating in a client-server relationship. Typically, insuch a system, the client computers are located remotely from the servercomputer and interact via a network. The client-server relationship maybe defined and controlled by computer programs running on the respectiveclient and server computers.

Systems, apparatus, and methods described herein may be used within anetwork-based cloud computing system. In such a network-based cloudcomputing system, a server or another processor that is connected to anetwork communicates with one or more client computers via a network. Aclient computer may communicate with the server via a network browserapplication residing and operating on the client computer, for example.A client computer may store data on the server and access the data viathe network. A client computer may transmit requests for data, orrequests for online services, to the server via the network. The servermay perform requested services and provide data to the clientcomputer(s). The server may also transmit data adapted to cause a clientcomputer to perform a specified function, e.g., to perform acalculation, to display specified data on a screen, etc. For example,the server may transmit a request adapted to cause a client computer toperform one or more of the method steps described herein, including oneor more of the steps of FIG. 4. Certain steps of the methods describedherein, including one or more of the steps of FIG. 4, may be performedby a server or by another processor in a network-based cloud-computingsystem. Certain steps of the methods described herein, including one ormore of the steps of FIG. 4, may be performed by a client computer in anetwork-based cloud computing system. The steps of the methods describedherein, including one or more of the steps of FIG. 4, may be performedby a server and/or by a client computer in a network-based cloudcomputing system, in any combination.

Systems, apparatus, and methods described herein may be implementedusing a computer program product tangibly embodied in an informationcarrier, e.g., in a non-transitory machine-readable storage device, forexecution by a programmable processor; and the method steps describedherein, including one or more of the steps of FIG. 4, may be implementedusing one or more computer programs that are executable by such aprocessor. A computer program is a set of computer program instructionsthat can be used, directly or indirectly, in a computer to perform acertain activity or bring about a certain result. A computer program canbe written in any form of programming language, including compiled orinterpreted languages, and it can be deployed in any form, including asa stand-alone program or as a module, component, subroutine, or otherunit suitable for use in a computing environment.

A high-level block diagram of an exemplary computer that may be used toimplement systems, apparatus and methods described herein is illustratedin FIG. 6. Computer 600 includes a processor 601 operatively coupled toa data storage device 602 and a memory 603. Processor 601 controls theoverall operation of computer 600 by executing computer programinstructions that define such operations. The computer programinstructions may be stored in data storage device 602, or other computerreadable medium, and loaded into memory 603 when execution of thecomputer program instructions is desired. Thus, the method steps of FIG.4 can be defined by the computer program instructions stored in memory603 and/or data storage device 602 and controlled by the processor 601executing the computer program instructions. For example, the computerprogram instructions can be implemented as computer executable codeprogrammed by one skilled in the art to perform an algorithm defined bythe method steps of FIG. 4. Accordingly, by executing the computerprogram instructions, the processor 601 executes an algorithm defined bythe method steps of FIG. 4. Computer 600 also includes one or morenetwork interfaces 604 for communicating with other devices via anetwork. Computer 600 also includes one or more input/output devices 605that enable user interaction with computer 600 (e.g., display, keyboard,mouse, speakers, buttons, etc.).

Processor 601 may include both general and special purposemicroprocessors, and may be the sole processor or one of multipleprocessors of computer 600. Processor 601 may include one or morecentral processing units (CPUs), for example. Processor 601, datastorage device 602, and/or memory 603 may include, be supplemented by,or incorporated in, one or more application-specific integrated circuits(ASICs) and/or one or more field programmable gate arrays (FPGAs).

Data storage device 602 and memory 603 each include a tangiblenon-transitory computer readable storage medium. Data storage device602, and memory 603, may each include high-speed random access memory,such as dynamic random access memory (DRAM), static random access memory(SRAM), double data rate synchronous dynamic random access memory (DDRRAM), or other random access solid state memory devices, and may includenon-volatile memory, such as one or more magnetic disk storage devicessuch as internal hard disks and removable disks, magneto-optical diskstorage devices, optical disk storage devices, flash memory devices,semiconductor memory devices, such as erasable programmable read-onlymemory (EPROM), electrically erasable programmable read-only memory(EEPROM), compact disc read-only memory (CD-ROM), digital versatile discread-only memory (DVD-ROM) disks, or other non-volatile solid statestorage devices.

Input/output devices 605 may include peripherals, such as a printer,scanner, display screen, etc. For example, input/output devices 605 mayinclude a display device such as a cathode ray tube (CRT), liquidcrystal display (LCD) monitor or projector for displaying information tothe user, a keyboard, and a pointing device such as a mouse, a trackballor a camera including image processing by which the user can provideinput to computer 600.

Any or all of the systems and apparatus discussed herein may beimplemented using a computer such as computer 600.

One skilled in the art will recognize that an implementation of anactual computer or computer system may have other structures and maycontain other components as well, and that FIG. 6 is a high levelrepresentation of some of the components of such a computer forillustrative purposes.

The foregoing Detailed Description is to be understood as being in everyrespect illustrative and exemplary, but not restrictive, and the scopeof the invention disclosed herein is not to be determined from theDetailed Description, but rather from the claims as interpretedaccording to the full breadth permitted by the patent laws. It is to beunderstood that the embodiments shown and described herein are onlyillustrative of the principles of the present disclosure and thatvarious modifications may be implemented by those skilled in the artwithout departing from the scope and spirit of this disclosure. Thoseskilled in the art could implement various other feature combinationswithout departing from the scope and spirit of this disclosure.

We claim:
 1. A method comprising: performing an action at a nearlocation to specify an angular range of motion of a video cameraplatform and a number of divisions within the angular range of motion;performing an action at the near location which causes at least onespatial bookmark, each comprising a spatial bearing parameter,corresponding to a real-time video image captured by the video-cameraplatform at a remote location, to be stored in a computer-readablememory, the video-camera platform having a controllable line-of-sight(LOS), wherein the at least one spatial bookmark is automaticallycreated by the video-camera platform based on a scan of the specifiedangular range of motion and the specified number of divisions to providea spatial bookmark for each of the divisions; performing an action atthe near location that designates to a computer an image displayed on ascreen, wherein the image is representative of the real-time videoimage, thereby causing the computer to retrieve one of the at least onespatial bookmark from the computer-readable memory; and performing anaction causing the computer to aim the video-camera platform along a LOScorresponding to the one of the at least one spatial bookmark, whereinthe video-camera platform captures a real-time video image that isreceived at a screen for display at the near location.
 2. The method ofclaim 1, wherein the video-camera platform is in communication with arobotic device at the remote location, and wherein performing the actioncausing the computer to aim the video-camera platform along the LOScauses the robotic device to perform an action based on a real-timevideo image captured by the video-camera platform along the LOS.
 3. Themethod of claim 1, wherein the video-camera platform is in communicationwith a computer application, and wherein performing the action causingthe computer to aim the video-camera platform along the LOS causes thecomputer application to perform an action based on a real-time videoimage captured by the video-camera platform along the LOS.
 4. The methodof claim 1, wherein the spatial bearing parameter comprises at least oneof a pan coordinate and a tilt coordinate.
 5. The method of claim 1,further comprising automatically determining the at least one spatialbookmark based on one of a detected sensor signal at the remote locationor user-selected scanning criteria.
 6. The method of claim 1, whereinthe image is one of a computer display icon and a representation of areal-time video image of the video-camera platform.
 7. The method ofclaim 1, further comprising one of: causing information indicative ofthe at least one spatial bookmark to be stored in the computer-readablememory; and causing the information indicative of the one of the atleast one spatial bookmark to be transmitted, wherein the informationindicative of the one of the at least one spatial bookmark causes thevideo-camera platform to aim along a LOS corresponding to the one of theat least one spatial bookmark.
 8. The method of claim 1, furthercomprising: upon user-selection, storing an index of informationindicative of the at least one spatial bookmark and transmitting theindex along with an instruction to record the at least one spatialbookmark; and upon the designation of the image, transmitting the indexthat corresponds to the at least one spatial bookmark to the remotelocation.
 9. The method of claim 1, further comprising: uponuser-selection, storing the at least one spatial bookmark at the nearlocation; and upon the designation of the image, transmitting the atleast one spatial bookmark to the remote location.
 10. The method ofclaim 1, further comprising transmitting, from the near location,control signals for aiming the video-camera platform along the selectedLOS.
 11. A method comprising: displaying, at a near location, real-timevideo images captured by a video-camera platform at a remote location,the video-camera platform having a controllable line-of-sight (LOS);receiving one or more user-generated inputs at respective view-selectiontimes while displaying the real-time video images, wherein the one ormore user-generated inputs specify an angular range of motion of thevideo camera platform and a number of divisions within the angular rangeof motion; recording at least one spatial bookmark, each comprising aspatial bearing parameter of the video-camera platform, obtained at eachrespective view-selection time in response to the respectiveuser-generated inputs, wherein the at least one spatial bookmark isautomatically created by the video-camera platform based on a scan ofthe specified angular range of motion and the specified number ofdivisions to provide a spatial bookmark for each of the divisions;displaying images representative of the real-time video images at eachview-selection time; and automatically aiming the video-camera platformalong a LOS corresponding to one of the at least one spatial bookmark inresponse to at least one user-generated input that designates a selectedone of the images representative of the real-time video images.
 12. Themethod of claim 11, wherein the one or more user-generated inputscomprise one of a mouse click or a touch-sensitive screen touch.
 13. Themethod of claim 11, wherein the images representative of the dynamicview comprise one of computer display icons or miniature, static screencaptures of selected video-camera platform views.
 14. The method ofclaim 11, wherein the dynamic view captured by the video-camera platformis displayed in real-time.
 15. The method of claim 11, whereinautomatically aiming comprises transmitting a message to the remotelocation that causes the video-camera platform to be aimed along therecorded LOS corresponding to the selected one of the images.
 16. Anon-transitory computer-readable medium having computer programinstructions stored thereon, which, when executed on a processor, causethe processor to perform a method comprising: performing an action at anear location to specify an angular range of motion of a video cameraplatform and a number of divisions within the angular range of motion;performing an action at the near location which causes at least onespatial bookmark, each comprising a spatial bearing parameter,corresponding to a real-time video image captured by the video-cameraplatform at a remote location, to be stored in a computer-readablememory, the video-camera platform having a controllable line-of-sight(LOS), wherein the at least one spatial bookmark is automaticallycreated by the video-camera platform based on a scan of the specifiedangular range of motion and the specified number of divisions to providea spatial bookmark for each of the divisions; performing an action atthe near location that designates to a computer an image displayed on ascreen, wherein the image is representative of the real-time videoimage, thereby causing the computer to retrieve one of the at least onespatial bookmark from the computer-readable memory; and performing anaction causing the computer to aim the video-camera platform along a LOScorresponding to the one of the at least one spatial bookmark, whereinthe video-camera platform captures a real-time video image that isreceived at a screen for display at the near location.
 17. An apparatuscomprising: a screen configured to display, at a near location,real-time video images captured by a video-camera platform at a remotelocation, the video-camera platform having a controllable line-of-sight(LOS); an input/output interface configured to receive one or moreuser-generated inputs at respective view-selection times whiledisplaying the real-time video images, wherein the one or moreuser-generated inputs specify an angular range of motion of the videocamera platform and a number of divisions within the angular range ofmotion; a processor, in communication with a computer-readable memory,configured to record at least one spatial bookmark, each comprising aspatial bearing parameter of the video-camera platform, obtained at eachrespective view-selection time in response to the respectiveuser-generated inputs, wherein the at least one spatial bookmark isautomatically created by the video-camera platform based on a scan ofthe specified angular range of motion and the specified number ofdivisions to provide a spatial bookmark for each of the divisions; thescreen configured to display images representative of the real-timevideo images at each view-selection time; and the processor configuredto automatically aim the video-camera platform along a LOS correspondingto one of the at least one spatial bookmark in response to at least oneuser-generated input that designates a selected one of the imagesrepresentative of the real-time video images.